home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Development Tools & Languages / Macintosh Common Lisp Related / CLiCC-CodeWarrior-0.6.2 / CLiCC-CodeWarrior-0.6.2.sit / clicc-0.6.2 / doc / clicc.1 < prev    next >
Encoding:
Text File  |  1993-12-15  |  5.7 KB  |  268 lines

  1. .\" -------------------------------------------------------------------------
  2. .\" Projekt : CLICC - a Common Lisp to C Compiler
  3. .\"           -----------------------------------
  4. .\" Function : The CLICC Manual Page
  5. .\"
  6. .\" $Source: /home3/apply/public/clicc-0.6.2/doc/RCS/clicc.1,v $
  7. .\" $Author: hk $
  8. .\" $Revision: 1.3 $
  9. .\" $Date: 1993/12/09 15:04:30 $
  10. .\" -------------------------------------------------------------------------
  11. .\"
  12. .TH CLiCC 1 "30 Jul 1993"
  13. .SH NAME
  14. clicc \- Common Lisp to C compiler
  15. .SH SYNOPSIS
  16. within Common Lisp:
  17.  
  18. (clicc <filename>
  19. .PD 0
  20. .IP
  21. .I :verbose
  22. <T_or_NIL>
  23. .IP
  24. .I :print
  25. <T_or_NIL>
  26. .IP
  27. .I :memsizes
  28. <memsizes>
  29. .IP
  30. .I :no-codegen
  31. <T_or_NIL>
  32. .IP
  33. .I :ti-level        
  34. <0..3>
  35. .IP
  36. .I :module-compiler 
  37. <T_or_NIL>
  38. .IP
  39. .I :out             
  40. <filename>
  41. .IP
  42. .I :max-lines       
  43. <count>
  44. .IP
  45. .I :split           
  46. <T_or_NIL>
  47. .IP
  48. .I :flat-ifs        
  49. <T_or_NIL>)
  50.  
  51. .SH DESCRIPTION
  52. .I CLiCC
  53. is a Common Lisp to C Compiler.  It generates C-executables 
  54. from Common Lisp application programs. 
  55. .I CLiCC 
  56. is not a Common Lisp 
  57. system.  Hence it does  not  include any  program  development or 
  58. debugging support.  
  59. .I CLiCC 
  60. is intended to  be used as an  addon to 
  61. existing Common Lisp systems for generating portable applications.
  62.  
  63. .I CLiCC 
  64. supports a subset of Common Lisp + CLOS, which we call CL_0
  65. (CommonLisp_0).  CL_0  is a strict and very large  subset of full
  66. Common Lisp + CLOS, without  (EVAL ...) and friends.  At present,
  67. CL_0 is based on CLtL1,  but  we  are  working towards  CLtL2 and
  68. ANSI-CL.
  69.  
  70. The target language is a subset of C. 
  71. .I CLiCC 
  72. can be configured to generate either ANSI-C or K&R-C.  The generated C
  73. code is compilable using a conventional C compiler on the target
  74. machine, and must be linked with the
  75. .I CLiCC 
  76. runtime library in order to generate executables.
  77.  
  78. .SH OPTIONS
  79. .TP
  80. .IR ":verbose   " <T_or_NIL>
  81. Output initial logo  (
  82. .I T
  83. )  or supress it  (
  84. .I NIL
  85. ).
  86.  
  87. .TP
  88. .IR ":print    " <T_or_NIL>
  89. Output lots of progress messages  (
  90. .I T
  91. )  or keep
  92. quiet  (
  93. .I NIL
  94. ).
  95.  
  96. .TP
  97. .IR ":memsizes    " <memsizes>
  98. Determines the minimal and maximal sizes for heap and stack that are
  99. initially allocated by the generated program. 
  100. <memsizes> has the form  
  101. .IP
  102. .I ((stack-min . stack-max) 
  103. .IP
  104. .I (formheap-min . formheap-max) 
  105. .IP
  106. .I (fixnumheap-min . fixnumheap-max) 
  107. .IP
  108. .IR "(floatheap-min . floatheap-man))".
  109. .IP 
  110. All elements of this data structure are fixnums. At startup time the
  111. compiled program tries to allocate the maximal amount of memory for
  112. each of its memory areas. If not that much memory is available it
  113. succesively halfs its requirements until they are satisfied.  If the
  114. available memory falls below the minimal amount, the program gives up.
  115.  
  116. .TP
  117. .IR ":no-codegen     " <T_or_NIL>
  118. Do not generate code, only run all prior passes  (
  119. .I T
  120. )  or generate object (= C) code  (
  121. .I NIL
  122. ).
  123.  
  124. .TP
  125. .IR ":ti-level      "  <0..3>
  126. Controls the intensity of type inference, which
  127. .I CLiCC 
  128. should perform.
  129. .I ti-level
  130. ranges from 0  (no type inference)  to 3  (exhaustive type inference).
  131. .I ti-level
  132. 3 can take quite a long time on medium or large size programs.
  133.  
  134. .TP
  135. .IR ":module-compiler   " <T_or_NIL>
  136. .I CLiCC
  137. acts as a module compiler  (
  138. .I T
  139. )  or as an application compiler which compiles whole programs  (
  140. .I NIL
  141. ). The module compiler allows seperate compilation of Lisp modules. 
  142.  
  143. .TP
  144. .IR ":out " <filename>
  145. <filename> is the name of the file 
  146. .I CLiCC
  147. will generate from its input.
  148. The default is the same name as the input file but with extension ".c"
  149.  
  150. .TP
  151. .IR ":max-lines   "  <count>
  152. if 
  153. .I :split
  154. -mode is off, 
  155. .I :max-lines
  156. limits the maximal number of lines in generated C-files to <count>. If
  157. <count> has the value 
  158. .I NIL
  159. no spliting of files takes place.
  160.  
  161. .TP
  162. .IR ":split       " <T_or_NIL>
  163. generate a C-file for each function  (
  164. .I T
  165. )  or put all generated code in one file  (
  166. .I NIL
  167. ) according to the 
  168. .I :max-lines
  169. option.
  170.  
  171. .TP 
  172. .IR ":flat-ifs    " <T_or_NIL>)
  173. controls the generated C-code for conditionals.
  174. Generate either nested C-ifs  ( 
  175. .I T
  176. )  or flat C-ifs with gotos. Some C-Compiler cannot compile highly
  177. nested control structures.
  178.  
  179.  
  180. .SH REFERENCE
  181.  
  182. The language implemented conforms to
  183.  
  184. .RS 1
  185.       Heinz Knutzen: Common Lisp_0 Sprachdefinition.
  186.       APPLY technical report APPLY/CAI/II.2/1.    
  187.       CAU Kiel, April 1993
  188. .RE
  189.  
  190. it contains the negative diffs relative to
  191.  
  192. .RS 1
  193.       Guy L. Steele Jr.: Common Lisp - The Language.
  194.       Digital Press. 1st edition 1984, 465 pages.
  195.       ("CLtL1" for short)
  196. .RE
  197.  
  198. .SH ENVIRONMENT
  199. .TP
  200. .BR CLICCROOT
  201. is used for determining the base directory of 
  202. .I CLiCC 
  203. specific files.
  204.  
  205. .SH FILES
  206. All file locations are relative to the 
  207. .I CLiCC
  208. base directory:
  209. .TP
  210. .I README INSTALL COPYRIGHT
  211. if you haven't read them do so now.
  212. .TP
  213. .I doc/*
  214. numerous documentation files
  215. .TP
  216. .I src/compiler/config.lisp
  217. .I src/compiler/clcdef.lisp
  218. various configuration parameters
  219. .TP
  220. .I src/compiler/*.lisp
  221. .I CLiCC
  222. compiler source code
  223. .TP
  224. .I src/runtime/c/*.c
  225. .I CLiCC
  226. kernel run time system source code
  227. .TP
  228. .I src/runtime/lisp/*.lisp
  229. .I CLiCC 
  230. run time system source code 
  231. .TP
  232. .I src/runtime/lisp2c/*.c
  233. .I CLiCC 
  234. run time system compiled from LISP to C
  235.  
  236. .SH SEE ALSO
  237. .IR cmulisp (1),
  238. .IR clisp (1),
  239. .IR cc(1).
  240.  
  241. .SH PROJECTS
  242. More work on type inference and related optimizations; improving the
  243. object oriented part; including a mean and lean foreign
  244. function interface for integration with the C world.
  245.  
  246. .SH AUTHORS
  247. .HP 0
  248. Wolfgang Goerigk, wg@informatik.uni-kiel.de
  249. .HP 0
  250. Ulrich Hoffmann, uho@informatik.uni-kiel.de
  251. .HP 0
  252. Heinz Knutzen, hk@informatik.uni-kiel.de
  253.  
  254. .SH MAIL ADDRESS
  255.  
  256. .PD 0
  257. .HP 0
  258. Institut fuer Informatik und Praktische Mathematik
  259. .HP 0
  260. Preusserstr. 1 - 9
  261. .HP 0
  262. 24105 Kiel, Germany
  263.  
  264. This work was supported by the German Federal Ministry for Research
  265. and Technology (BMFT) within the joint project APPLY .
  266.  
  267.  
  268.